#pragma once
#include <boost/log/trivial.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/sources/logger.hpp>
#include <boost/log/attributes/timer.hpp>
#include <boost/log/utility/setup.hpp>
#include <boost/log/support/date_time.hpp>
namespace logging = boost::log;
namespace expr = boost::log::expressions;

#include <boost/asio.hpp>
#include <boost/asio/post.hpp>
#include <boost/asio/strand.hpp>
#include <boost/thread.hpp>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/ini_parser.hpp>
#include <boost/thread/detail/singleton.hpp>
#include <boost/serialization/singleton.hpp>
#include <boost/property_tree/json_parser.hpp>
#include <boost/format.hpp>
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>

#include <deque>
#include <set>
#include <map>
#include <list>
#include <vector>
#include <queue>
#include <memory>
#include <iostream>
#include <sstream>

#include "./imMsg.h"

using boost::asio::ip::tcp;
using boost::property_tree::ptree;
using boost::property_tree::ini_parser::read_ini;

#define LOG_T BOOST_LOG_TRIVIAL(trace)
#define LOG_D BOOST_LOG_TRIVIAL(debug)
#define LOG_I BOOST_LOG_TRIVIAL(info)
#define LOG_W BOOST_LOG_TRIVIAL(warning)
#define LOG_E BOOST_LOG_TRIVIAL(error)
#define LOG_F BOOST_LOG_TRIVIAL(fatal)

#define IM_TEAM_NAME_DEFAULT "我的好友"
#define IM_TEAM_NAME_BLACK "黑名单"
#define IM_FRIEND_MAX_SIZE 1000